//============================================================================================
/**
 * @file	bong_bed.h
 * @author	NozomuSaito
 * @date	2008.06.04
 * @brief	ボングリの状態データ定義
 */
//============================================================================================
#ifndef	__BONG_BED_H__
#define	__BONG_BED_H__

#include "savedata/savedata_def.h"
#include "savedata/bonguri.h"

//============================================================================================
//============================================================================================
//----------------------------------------------------------
/**
 * @brief	ボングリ状態データの不完全型定義
 */
//----------------------------------------------------------
typedef struct _BONG_BED BONG_BED;

//----------------------------------------------------------
/**
 * @brief	ボングリの状態定義
 */
//----------------------------------------------------------
typedef enum {
	BONG_STAT_NOTHING = 0,		///<ボングリが生っていない
	BONG_STAT_FRUIT,			///<実がなっている状態
	BONG_STAT_CHANGE = 0xff,	///<状態変化中
}BONG_STAT;

//============================================================================================
//============================================================================================
//----------------------------------------------------------
//----------------------------------------------------------
extern int BONGBED_GetWorkSize(void);
extern BONG_BED * BONG_BED_AllocWork(const u32 inHeapID);
extern void BONGBED_Init(BONG_BED * bbed);

//初期状態セット処理
extern void BONGBED_SetDefaultData(	BONG_BED * bbed );
//----------------------------------------------------------
//----------------------------------------------------------
//状態取得
extern BONG_STAT BONGBED_GetBongStatus(const BONG_BED * bbed, const int inID);

//ボングリの種類を取得
extern int BONGBED_GetBongType(const BONG_BED * bbed, const int inID);
//ボングリのカラーIDを取得
BONG_COLOR BONGBED_GetBongColor(const BONG_BED * bbed, const int inID);

//成長フラグの取得
extern BOOL BONGBED_GetGrowthFlag(const BONG_BED * bbed, const int inID);
//成長フラグの設定
extern void BONGBED_SetGrowthFlag(BONG_BED * bbed, const int inID, const BOOL inFlg);

//ボングリを収穫
extern void BONGBED_GetHarvest(BONG_BED * bbed, const int inID);

extern void BONGBED_Growth(BONG_BED * bbed);
//----------------------------------------------------------
//----------------------------------------------------------
extern BONG_BED * SaveData_GetBongBed(SAVEDATA * sv);


#endif /* __BONG_BED_H__ */